class Request {
  static apiUrl = "http://127.0.0.1:12345";
  static get() {}

  static post() {}
}

["get", "post"].forEach((method) => {
  Request[method] = (url, data) => {
    // 从函数中返回Promise，而不是在onload内部返回
    return new Promise((resolve, reject) => {
      // 每次请求都创建新的XMLHttpRequest实例
      let xml = new XMLHttpRequest();
      xml.open(method.toUpperCase(), Request.apiUrl + url, true);

      // 发送请求
      if (method === "post" && data) {
        if (typeof data === "object") {
          xml.send(JSON.stringify(data));
        } else {
          xml.send(data);
        }
      } else {
        xml.send();
      }

      // 处理响应
      xml.onload = () => {
        // 检查HTTP状态码
        if (xml.status >= 200 && xml.status < 300) {
          try {
            // 尝试解析JSON响应
            const responseData = JSON.parse(xml.responseText);
            resolve(responseData);
          } catch (e) {
            // 如果不是JSON格式，直接返回原始响应
            resolve(xml.responseText);
          }
        } else {
          // HTTP错误处理
          //   reject(new Error(`HTTP Error: ${xml.status} - ${xml.statusText}`));
        }
      };
    });
  };
});
